#ifndef MEM_BUFFER
#define MEM_BUFFER
 
/*
 * Модуль для работы с оперативной памятью. Функции и типы с пометкой map служат "картой", чтобы знать, где находятся занятые и свободные кусочки.
 */


int buffer_create(size_t mem_size);
/*
 * Создает "карту" и выделяет память нужного размера. Возвращает 1 в случае успеха и 0 в случае, если память выделить не удалось.
 */

void buffer_remove();
/*
 * Освобождает буфер, удаляет "карту".
 */

void *buffer_write(void *buf, size_t sz);
/*
 * Записывает в буфер информацию из buf длиной в sz байт. Если переданный указатель оказался NULL'ом, не записывает ничего. Возвращает указатель
 * на память в буфере, где будет храниться записанное. В случае невозможности записи (фрагментация или нехватка места) возвращает NULL.
 */

void buffer_delete(void *address);
/*
 *Удаляет элемент из буфера. Для безопасного режима с пойзонингом следует раскомментировать код из этой функции.
 */

#endif

